Skip to content

feat(gecx): stream BYOVA audio chunks - #36

Merged
adamweeks merged 3 commits into
webex:feat/gecx-connectorfrom
adamweeks:feat/se-1943-chunk-streaming
Aug 3, 2026
Merged

adamweeks merged 3 commits into
webex:feat/gecx-connectorfrom
adamweeks:feat/se-1943-chunk-streaming

Conversation

@adamweeks

Copy link
Copy Markdown
Collaborator

Summary

  • stream each CES output audio frame immediately as raw 8 kHz mu-law BYOVA CHUNK audio
  • keep START_OF_INPUT as a standalone event, then emit END_OF_INPUT, ordered audio chunks, and exactly one normal or terminal FINAL
  • route the initial greeting through the same streaming path and remove GECX WAV buffering/playback delays
  • reject unsupported GECX output formats until the later audio-format phase
  • strengthen the GECX E2E plan so streamed-prompt pauses cannot produce false multi-turn passes

Validation

  • 109 focused GECX/gateway tests
  • 388 complete gateway tests
  • 53 E2E framework tests
  • four browser tests and production client build
  • seven-scenario GECX plan validates with SHA-256 987a248a66aae1aaeb8b26dc58c05965cfd34d4df7e88ff01e8c2b67e556c127

Dev evidence

  • corrected runtime commit 1611593 is active on the AWS dev instance; checksum, protobuf overlay/import preflight, service/public health, ListVirtualAgents, and both ALB targets passed
  • long-response evidence emitted its first caller-turn audio chunk 1.016 seconds before CES marked the 31-chunk turn complete
  • natural-pause evidence contains one intact caller turn in CES after a held speech end and merged resume
  • strengthened multi-turn evidence contains both caller turns and both agent replies in CES
  • task completion disconnected remotely with Webex code 0 and CES labels sessionContained=true/sessionEscalated=false
  • transfer produced both announcements and CES labels sessionContained=false/sessionEscalated=true
  • the timestamp-bounded corrected-release log scan contains no error, timeout, traceback, stream-error, or worker-join signature

The playback-speech scenario remains an audio-plane probe because barge-in is intentionally disabled until Phase 4.

Related: SE-1943

@adamweeks
adamweeks merged commit ea4948e into webex:feat/gecx-connector Aug 3, 2026
@adamweeks
adamweeks deleted the feat/se-1943-chunk-streaming branch August 3, 2026 19:25
adamweeks added a commit to adamweeks/webex-byova-gateway-python that referenced this pull request Aug 3, 2026
* feat(gecx): stream BYOVA audio chunks

* fix(gateway): keep speech start boundary final

* test(e2e): wait for streamed prompt completion

---------

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>
adamweeks added a commit that referenced this pull request Aug 6, 2026
* feat: add GECX connector starting point

* feat: integrate GECX connector support

* docs: document GECX connector across guides

* feat(gecx): make escalation and termination reliable

* fix(gecx): address escalation review findings

* fix(gecx): restore normal prompt response ordering

* fix(gateway): emit terminal-only session end

* fix(gateway): complete stream after terminal event

* fix(gecx): ensure audio turns reach CES endpoint

* fix(gecx): preserve complete voice turns

* fix(gateway): preserve transfer announcement ordering

* fix(gecx): preserve streaming integration after rebase

* fix(gecx): preserve speech across natural pauses

* fix(gateway): suppress duplicate speech boundaries

* fix(gecx): add endpointing margin for voice turns

* fix(gecx): bound natural pause resume window

* test(gecx): add connector regression plan

* feat(gateway): add Phase 2 full-duplex plumbing (#34)

* feat(gateway): decouple caller ingress from responses

* test(gecx): add full-duplex e2e scenarios

* test(gecx): qualify playback probe evidence

---------

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>

* feat(gecx): stream BYOVA audio chunks (#36)

* feat(gecx): stream BYOVA audio chunks

* fix(gateway): keep speech start boundary final

* test(e2e): wait for streamed prompt completion

---------

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>

* fix(gecx): suppress anomalous leading audio

* fix(gecx): preserve post-input agent replies

* fix(gecx): wait for caller recognition

* fix(gecx): deliver autonomous prompts (#38)

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>

* fix(gecx): disable barge-in by default (#39)

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>

* fix(gecx): complete SE-1943 validation gates (#40)

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>

* feat(e2e): verify GECX terminal outcomes (#41)

* feat(e2e): verify gateway terminal outcomes

* fix(e2e): correlate bounded gateway events

* refactor(e2e): simplify terminal event assertions

---------

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>

---------

Co-authored-by: Adam Weeks <adweeks+cisco@cisco.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant